package io.mft.commons.ioc;

import org.springframework.beans.factory.annotation.AnnotatedBeanDefinition;
import org.springframework.beans.factory.support.AbstractBeanDefinition;

/**
 * 
 * @类型名称：ServiceSpringRegistry
 * @说明：TODO
 * @创建者: 胡常建
 * @创建时间: 2018年3月7日 下午11:54:33
 * @修改者: 胡常建
 * @修改时间: 2018年3月7日 下午11:54:33
 */
@SpringIocRegistry
public class ServiceSpringRegistry extends BaseRegistry {
	public ServiceSpringRegistry(String sysNo, String basePackage) {
		super(sysNo, basePackage, MFTService.class);
	}

	@Override
	protected boolean isCandidateComponent(AnnotatedBeanDefinition beanDefinition) {
		String[] apis = beanDefinition.getMetadata().getInterfaceNames();
		if (apis.length == 0) {
			return false;
		}
		return beanDefinition.getMetadata().isConcrete();
	}
	
	@Override
	protected boolean handle(AbstractBeanDefinition genericBeanDefinition) {
		genericBeanDefinition.setScope("singleton");
		return true;
	}
}
